package com.apanal.qlife.sys.service;

import java.util.List;

import com.apanal.qlife.common.page.Page;
import com.apanal.qlife.common.page.PageReturn;
import com.apanal.qlife.sys.model.Checkcode;

/**
 * 验证码服务层接口
 * 
 * @author shuliangxing
 * 
 * @date 2015-1-14上午11:33:49
 */
public interface CheckcodeService {

	/**
	 * 根据id删除
	 * 
	 * @param id
	 * @return
	 */
	String deleteById(Integer id);

	/**
	 * 新增
	 * 
	 * @param record
	 * @return
	 */
	String insert(Checkcode record);

	/**
	 * 新增,记录日志
	 * 
	 * @param record
	 * @return
	 */
	String insertInLog(Checkcode record);

	/**
	 * 非空字段新增
	 * 
	 * @param record
	 * @return
	 */
	String insertSelective(Checkcode record);

	/**
	 * 根据id查询
	 * 
	 * @param id
	 * @return
	 */
	Checkcode selectById(Integer id);

	/**
	 * 非空字段更新
	 * 
	 * @param record
	 * @return
	 */
	String updateByIdSelective(Checkcode record);

	/**
	 * 更新
	 * 
	 * @param record
	 * @return
	 */
	String updateById(Checkcode record);

	// 分割线

	/**
	 * 查询所有
	 * 
	 * @return
	 */
	List<Checkcode> selectAll();

	/**
	 * 分页查询
	 * 
	 * @param entity
	 * @param page
	 * @return
	 */
	PageReturn<Checkcode> selectForPage(Checkcode entity, Page page);

	/**
	 * 查询最新的验证码
	 * 
	 * @param mobile
	 *            手机号码
	 * @param type
	 *            验证码
	 * @param type
	 *            类型，0=注册，1=密码找回
	 * @return
	 */
	Checkcode findNearestCode(String mobile, String code, int type);

	/**
	 * 改变验证码状态为已使用
	 * 
	 * @param id
	 */
	void changeCodeUsed(Long id);

}
